home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Multimedia Plus
/
Multimedia Plus with ClearVue Version 10-94 (Knowledge Media Inc.).ISO
/
dos
/
anim
/
flilib
/
flisrc
/
aascreen.h
< prev
next >
Wrap
C/C++ Source or Header
|
1990-02-20
|
2KB
|
60 lines
/* aascreen.h Copyright 1990 Dancing Flame, San Francisco */
#ifndef AASCREEN_H
#define AASCREEN_H
#ifndef AATYPES_H
#include "aatypes.h"
#endif /* AATYPES_H */
/* Graphics types */
typedef unsigned char Cmap;
typedef unsigned char Pixel;
typedef unsigned char Bitplane;
/* Constants pertaining to 320x200 256 color mode mostly */
#define AA_VGA_SCREEN ((Pixel *)0xa0000000)
#define AA_XMAX 320
#define AA_YMAX 200
#define AA_BPR 320
#define AA_COLORS 256
/* This structure is something we can draw on. A superset of Vcel
(and keep it that way or things break!) */
struct vscreen
{
int x, y; /* upper left corner in screen coordinates */
unsigned w, h; /* width, height */
unsigned bpr; /* bytes per row of image p */
Pixel *p; /* Starts on segment boundary */
Cmap *cmap;
long psize; /* size of pixels */
Pixel *allocedp; /* for memory based screens only */
};
typedef struct vscreen Vscreen;
extern Vscreen aa_screen;
extern Cmap aa_colors[]; /* software echo of color map */
Boolean aa_open_vga_screen(void); /* opens 256 color screen */
void aa_close_vga_screen(void);
/* Open a screen can draw on but not see */
Vscreen *aa_alloc_mem_screen(void);
/* For screens not full size */
Vscreen *aa_alloc_mem_cel(int x, int y, int w, int h);
void aa_free_mem_screen(Vscreen *ms); /* dispose of a memory screen */
void aa_copy_screen(Vscreen *source, Vscreen *dest);
void aa_clear_screen(Vscreen *vs);
/* Get the current video mode */
int dos_get_vmode(void);
/* Set video mode. Mode 0x13 is 320x200 256 color */
void dos_set_vmode(int mode);
/* Set the VGA color map. */
void aa_set_colors(int start, int count, Cmap *cmap);
/* Wait until in vertical blank */
void aa_wait_vblank(void);
/* Wait until out of vertical blank */
void aa_wait_no_vblank(void);
#endif /* AASCREEN_H */